package com.rd.teacher.jichao.day17;

import java.io.File;

public class TestFile {

    public static void main(String[] args) {
//        String path = "D:\\ideaProjects\\rd2304";
//        String path1 = "D:/ideaProjects/rd2304";
//        String path2 = "/Users/Qing/IdeaProjects/lesson/src/main/java/com/zrrd/day09";
//        // "\n"  "\t" "\\"
//
//        String projectPath = System.getProperty("user.dir");
//        System.out.println(projectPath);
//
//        String filePath = projectPath + "/" + "test.txt";
//        String filePath1 = projectPath + File.separator + "test.txt";
//        System.out.println(filePath1);
//        File file = new File(filePath);
//        System.out.println(file);
//
//        System.out.println("-------");
//        // 构造器传入的路径
//        System.out.println(file.getPath());
//        // 绝对的路径
//        System.out.println(file.getAbsolutePath());
//        try {
//            // 规范的路径
//            System.out.println(file.getCanonicalPath());
//        } catch (IOException e) {
//            throw new RuntimeException(e);
//        }
//
//        // 两种类型  判断文件是文件本身 还是文件夹
//        System.out.println(file.isFile());
//        System.out.println(file.isDirectory());
//
//        File dir = new File(projectPath + "/" + "file");
//        System.out.println(dir.isFile());
//        System.out.println(dir.isDirectory());
//
//        System.out.println("-------");
//        // 三种权限  可读  可写  可执行
//        System.out.println(file.canRead());
//        System.out.println(file.canWrite());
//        System.out.println(file.canExecute());
//
//        // 创建和删除文件
//        // 要注意路径的正确性
////        File newFile = new File(dir + "/" + "test1.txt");
//        File newFile = new File("/Users/Qing/lesson");
//        System.out.println(newFile.isFile());
//        System.out.println(newFile.isDirectory());
//        try {
//            Boolean result = newFile.createNewFile();
//            if (result) {
//                System.out.println("创建文件成功");
//                System.out.println(newFile);
//            } else {
//                // 再执行一次会创建失败 因为已经有同名文件了
//                System.out.println("创建失败");
//            }
//        } catch (IOException e) {
//            throw new RuntimeException(e);
//        }
//
//        // 判断文件是否存在
//        System.out.println(newFile.exists());
//        System.out.println(file.exists());
//

//        String projectPath = System.getProperty("user.dir");
////        System.out.println(projectPath);
//
//        File file = new File(projectPath + "/" + "file2");
//        File file1 = new File("/Users/Qing/IdeaProjects/lesson" + "/" + "file1");
//        System.out.println(file.getAbsolutePath());
//        Boolean result = file.mkdir();
//        if (result) {
//            System.out.println("文件夹创建成功");
//        } else {
//            System.out.println("文件夹创建失败");
//        }
//
//        // 删除方式不区分文件或文件夹
//        Boolean result1 = file.delete();
//        if (result1) {
//            System.out.println("文件夹删除成功");
//        } else {
//            System.out.println("文件夹删除失败");
//        }

//        System.out.println(file1.getParent());
//        File lesson = file1.getParentFile();
//        System.out.println(lesson.getParent());
//        File parentFile = file1.getParentFile();
//        System.out.println(parentFile.getName());
//        System.out.println(parentFile.length());
//        System.out.println(parentFile);
//
//        System.out.println("-----------");
//        String[] strList = parentFile.list();
//        for (String s : strList) {
//            System.out.println(s);
//        }

        // 修改操作
//        File file3 = new File(projectPath + "/" + "file3");
//        Boolean result = file1.renameTo(file3);
//        if (result) {
//            System.out.println("文件夹重命名成功");
//        } else {
//            System.out.println("文件夹重命名失败");
//        }
//
        // 构造方法  通过父子路径
//        File file3_2 = new File(projectPath, "file3");
//        System.out.println(file3_2);

//         在当前的项目路径下
//         创建两个文件夹  f1 f2  每个文件夹下创建两个文件 对应t1和t2  t3和t4
//         再创建一个文件t3 重命名为t4
//         再将t4删除
//         分别输出两个文件夹f1和f2下的所有子文件和子文件夹


//        String projectPath = System.getProperty("user.dir");
//        // 创建文件或文件夹
//        File dir = new File(projectPath + "/" + "f1");
//        dir.mkdir();

//        try {
//            File file = new File(dir.getAbsolutePath() + "/" + "t1");
////            file.createNewFile();
//            System.out.println(file.getAbsolutePath());
//            File file1 = new File(file.getAbsolutePath() + "/" + "t2");
//            file1.createNewFile();
//
//        } catch (IOException e) {
//            e.printStackTrace();
//        }

//        String[] strArr = dir.list();
//        for (String s : strArr) {
//            System.out.println(s);
//        }
//        System.out.println("-------");
//        File[] fileArr = dir.listFiles();
//        for (File file : fileArr) {
//            System.out.println(file.getName());
//        }


        // 相对路径和绝对路径
        // 绝对路径是一个确定的路径  是一串固定的字符串
        // 相对路径是一个相对的概念  如果在lesson项目中是lesson的根路径
        // 如果在rd2304下 是rd2304的根路径
        File target = new File("target");
        System.out.println(target.getAbsolutePath());

        Boolean result = target.delete();
        if (result) {
            System.out.println("文件夹删除成功");
        } else {
            System.out.println("文件夹删除失败");
        }
        // 文件夹为空的时候  才能成功删除
        // 如果包含了其他文件  需要删除所有子文件后  才能删除自身


    }
}
